From b69affe82427968f140c9789d47cd0e6b66c3780 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Thu, 2 Feb 2012 18:07:29 +0900 Subject: [PATCH] Fix previous change for Bug#6988. --- lisp/ChangeLog | 4 ++++ lisp/composite.el | 10 +++------- src/ChangeLog | 5 +++++ src/xdisp.c | 6 +----- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 93a6a410777..c5c4a1194dc 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2012-02-02 Kenichi Handa + + * (compose-region): Cancel previous change. + 2012-02-02 Kenichi Handa * composite.el (compose-region, compose-string): Signal error for diff --git a/lisp/composite.el b/lisp/composite.el index 739ec8bbcbd..72317ac470e 100644 --- a/lisp/composite.el +++ b/lisp/composite.el @@ -211,7 +211,7 @@ or a vector or list of integers and rules. If it is a character, it is an alternate character to display instead of the text in the region. -If it is a string, the elements are one or more alternate characters. In +If it is a string, the elements are alternate characters. In this case, TAB element has a special meaning. If the first character is TAB, the glyphs are displayed with left padding space so that no pixel overlaps with the previous column. If the last @@ -234,9 +234,7 @@ text in the composition." (let ((modified-p (buffer-modified-p)) (inhibit-read-only t)) (if (or (vectorp components) (listp components)) - (setq components (encode-composition-components components)) - (if (= (length components) 0) - (error "Invalid composition component: %s" components))) + (setq components (encode-composition-components components))) (compose-region-internal start end components modification-func) (restore-buffer-modified-p modified-p))) @@ -269,9 +267,7 @@ Optional 5th argument MODIFICATION-FUNC is a function to call to adjust the composition when it gets invalid because of a change of text in the composition." (if (or (vectorp components) (listp components)) - (setq components (encode-composition-components components)) - (if (= (length components) 0) - (error "Invalid composition component: %s" components))) + (setq components (encode-composition-components components))) (or start (setq start 0)) (or end (setq end (length string))) (compose-string-internal string start end components modification-func) diff --git a/src/ChangeLog b/src/ChangeLog index 004215b222b..1fd751f8aaf 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-02-02 Kenichi Handa + + (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is + 0, do not call append_composite_glyph. + 2012-02-02 Kenichi Handa * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to diff --git a/src/xdisp.c b/src/xdisp.c index 864517b950c..75ea519e82e 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -24595,10 +24595,6 @@ x_produce_glyphs (struct it *it) it->glyph_row->contains_overlapping_glyphs_p = 1; it->pixel_width = cmp->pixel_width; - if (it->pixel_width == 0) - /* We assure that all visible glyphs have at least 1-pixel - width. */ - it->pixel_width = 1; it->ascent = it->phys_ascent = cmp->ascent; it->descent = it->phys_descent = cmp->descent; if (face->box != FACE_NO_BOX) @@ -24630,7 +24626,7 @@ x_produce_glyphs (struct it *it) if (it->descent < 0) it->descent = 0; - if (it->glyph_row) + if (it->glyph_row && cmp->glyph_len > 0) append_composite_glyph (it); } else if (it->what == IT_COMPOSITION) -- 2.30.2